23

» WarCraft 3 / Не появляется юнит

Похожие вопросы:

ответ
Раздели вейтом, конверсия требует нескольких моментов для доделки...
Долой "темный", юзай морф медведя или Иллидана
это не спасёт от потери приобретённых триггерно спеллов
ответ
Ты в условиях установил каждое здание в итоге выходит так что чтобы тригер сработал нужно завершить улучшение во всех этих зданиях сделай для каждого по отдельности либо через если/тогда/иначе.
ответ
SaveUnitHandle(hash,GetHandleId(target),7,caster);
GetHandleId(target) - хендл самого юнита
LoadUnitHandle(hash,GetUnitTypeId(u),7);
GetUnitTypeId(u) - Ид типа юнита, а не хендл.
ответ
call CreateUnit(GetOwningPlayer(caster),'e000',kursor_x,kursor_y,0.00)
set dummy = bj_lastCreatedUnit
нативная CreateUnit не записывает юнита в bj_lastCreatedUnit, это делают только БЖ функции (вон там префикс bj_)
поменяй на
set dummy = CreateUnit(GetOwningPlayer(caster),'e000',kursor_x,kursor_y,0.00)
ответ
8gabriel8:
Тип передвижения на Нет ставишь?
Хотя, если здание, значит прямоугольная карта путей по игровой сетке, а не любое местоположение. Тип передвижения в этом случае не важен.
Я думаю кроме нас тут уже больше никто не напишет поэтому я закрою вопрос, спасибо за внимание и ответы.

23

» WarCraft 3 / 2 книги заклинаний у одного воина

Похожие вопросы:

ответ
Хозяин Миров:
Tobi123, Нет, конечно не его, пустышка есть. Стоп, значит надо для всех один эффект и заклинание дать? Попробую.
Audes, Но не на два же слова! Но тогда как увеличить это место?
Tobi123, Попробовал, выносит, как только вхожу юнитом в зону действия ауры (Аура у здания).

23

» WarCraft 3 / Удаление лишнего

Похожие вопросы:

ответ
это не совсем то, но тоже решение проблемы
ответ
~8gabriel8:
Вот сегодня ночью расписывал:
Если кратко, нужен mdlvis 1.39, в нём выбираешь кадры анимации на шкале, щёлкнув мышью в начале участка с ненужными кадрами, а потом Shift+щелчок мышью в конце участка, [Del].

23

» WarCraft 3 / Способности предмета

Похожие вопросы:

ответ
Даже на GUI есть: Герой - UseItem. Там же можно использовать на юнита или точку.
Для того чтобы использовать нужный предмет придется перебирать все.
ответ
Так ты же выключаешь триггер на 18 секунд вот он и не срабатывает.
Поставь условие, что герыч не имеет абилки-пустышки, если не имеет - дать её и через 18 сек забрать и пустить молнию.
Правда я не уверен насчёт того, отловится ли attacking unit через 18 сек вейта, проверь...
Вообще, если устраивает орбом - то даёшь "сферу молний" с эффектом "цепь молний", у которой 18 сек перезарядка(у цепи не у сферы)
ответ
constant native GetSpellTargetItem takes nothing returns item
Подробнее смотри в Common.j или jass API.
ответ
Steal nerves:
Способности нужно дать юниту, и все. Если эффект временный, используем вэйт/wait (по-русски ждать) или таймеры, по истечении которого удаляем способность. Но вэйты не рекомендуются для использования.
xgm.guru/p/wc3/articles новичок, иди почитай
xgm.guru/p/wc3/needspells здесь не стол для заказов, хотя тема заброшена
xgm.guru/p/wc3/bpe где-то тут была похожее, только с баффами
можете конкретно написать, что вам нужно.
смотреть сюда
событие - юнит применяет способность
условие -применяемая способность == тип твоей способности
действие - добавить способность
ждать 15 сек.
действие - удалить способность
про локалки + таймер, хэш-таблицы
xgm.guru/p/wc3/jass_local_vars есть примерчик внизу, похожий на ваш
ответ
Alexey103, она висит в ресурсах, достаточно ввести в поиск "Мемхак", ну если уж вы такие лени вот ссылка

23

» WarCraft 3 / Объединение предметов

Принятый ответ
Похожие вопросы:

ответ
Steal nerves:
ответы
Как объединить зелья лечения в одно с зарядом, если герой имеет одно в инвентаре и поднимает второе?
обычно используют "событие - юнит получает предмет", И на предмет, который вы получаете, ссылается переменная, которая называется item being manipulated. А юнит, который получает итем - Triggering Unit. Вы можете с помощью этой переменной итема узнать тип, сравнить. Потом циклом пробегаете по слотам (от 1 до 6), тут вся суть в одной команде триггерной (item in slot X, итем в слоте Х) и проверяете есть ли такой же итем (не забываем делать проверки, на то что этот предмет не равен item being manipulated и сравниваете не одинаковые ли типы). Если есть такой же (находите тот же тип что и item being manipulated), то от item being manipulated берете заряды и прибавляете к зарядам существующего, а потом item being manipulated удаляете. Недостаток: при заполненном инвентаре такая штука не будет работать.Не хватает свободного места.
код
цикл А от 1 до 6
if тип итема (item being manipulated) РАВНО тип итема (item in slot А) and item being manipulated НЕ РАВНО item in slot А then проверяете
set k = Charges remaining in ( item being manipulated) + Charges remaining in ( item in slot А) складываете заряды
Set charges remaining in ( item in slot А) to ( k) устанавливаете кол-во зарядов
Remove Item (item being manipulated) удаляете
endif
Есть гуишная проверка на наличие итема определенного типа в инвентаре, но она утечна. И лучше циклом прогонять.
Кстати выше пример, там вот дропают итем, зачем? чтобы проверить есть ли такой же итем. А то мб проверка на наличие итема определенного типа в инвентаре найти подобранный итем. А нам нужно знать, что есть еще один, кроме подобранного. Поэтому дропают. Только не понятно зачем создаете новый итем.
Проверка, на то что подобранный предмет имеет зарядов больше 0, говорит нам о том что это не обычный предмет.
есть статьи
Как зелье с зарядом разделить, если игрок перекладывает зелье с зарядом в другую ячейку инвентаря, если возможно, то разделение происходить должно только при нажатии какой-то клавиши?
можно перекладывать в другой слот. для этого ловят приказ. Короче смотрите системы CCS
там создают новый такой же предмет, и выделяют кол-во зарядов, деля поровну например. Абилкой например, попробуй сделать целевую активную абилку с целью предмет, указывай на инвентарь и дели.
Как это можно сделать покороче для множества разных типов предметов?
всмысле покороче? сделать под одну группу? есть же классификация. Я вот делаю так, что все предметы, которые с зарядами, должны иметь классификацию "с зарядами". Не помню точно как называется класс итемов.
Как правильно реализовать в инвентаре 7 слот?
если у героя заполнен инвентарь, то он может подобрать руну. Вот в доте система скрещивания. То же самое можно сделать и с зарядами. На земле у него лежат руны, при подборе руна исчезает. Но мы проверяем слоты, есть ли такой итем. Если есть, прибавляем заряды к существующему. Иначе создать новый. При дропе итема, оригинал подменяет снова на руну. В руну можно передать значения зарядов.
А также ограничения какие-то на количество зарядов нужно ставить или сама система выше какой-то планки не даст собирать?
до такого не доходил.
скинул примеры (хотя многие дурацкие, но делал здесь хгм в качестве ответов)
вот еще одна система hh

23

» WarCraft 3 / Магазин в варкрафт

Похожие вопросы:

ответ
Проблема была в самих магазинах, сделал как в старой версии, заработало.
ответ
Steal nerves:
Тестил, тестил. Думал найду ошибку. Короче не знаю в чем дело, видимо и в правду баг. Решил по-другому. Ловить поставку, и ловить продажу. То есть ловить то, что пришло, и то, что ушло.
событием - "юнит закладывает в лавку" (EVENT_PLAYER_UNIT_PAWN_ITEM) ловим продажу итемов.
GetSellingUnit() =продающий торговец (типа всякие предметы закладывает в магазин и получает деньги)
GetBuyingUnit()=GetTriggerUnit() = покупающий торговец (это обычно магазин)

событием - "юнит закладывает из лавки (продает артефакт)" (EVENT_PLAYER_UNIT_SELL_ITEM) ловим покупку итемов
GetSellingUnit()=GetTriggerUnit()=продающий торговец (обычно это магазин)
GetBuyingUnit() = покупающий торговец (наш герой получает артефакты)
Решил, я по-своему. Короче, видимо, итем в магазине исчезает при добавлении. Попробовал запоминать все добавленные итемы, и при добавлении я сначала удалю всё в магазине, а потом заново добавлю. Пришлось, еще порядок (номер слотов) запоминать, а то строятся ключи хэша на строгом порядке. Если возьму и заберу итем посередине, придется заново выстраивать порядок.
Не знаю, пока тестил много времени, пока без косяков. Главное, что работает. Меня это радует. Но пока не буду спешить. Мне бы хотелось затестить норм.

23

» WarCraft 3 / Приоритет атаки ИИ

Принятый ответ
Похожие вопросы:

ответ
В редакторе объектов: Характеристики - Приоритет (число).
Юнитов с высоким приоритетом атакуют в первую очередь.
ответ
8gabriel8, приоритет менять нельзя
стандартный ии использует это поле для контроля юнитов
пишем свой ии в котором вместо приоритета юзаем свою переменную которой можем задавать любое значение
8gabriel8:
Но для меня это путь в Москву через Владивосток
ну если между тобой и Москвой находится Владивосток то иначе никак(а вар3 как раз расположен за Владивостоком)
ответ
Так ты дай юниту 2 атаки и глянь, какие он использует на какой дистанции.

23

» WarCraft 3 / Не открывает карту в warcraft 3

Похожие вопросы:

ответ
если не вдаваться в подробности,то ты просто не сможешь засейвить карту после протекта
ответ
Вам сюда, господин хороший. Там есть ответы, практически, на все ваши вопросы.
ответ
Stalker Freedom:
Чаще всего проблема заключается в том, что юные маперы забывают импортировать текстуры. Ты ведь всё правильно импортировал?
ответ
Steal nerves:
Короче понял как сделать (ну и в принципе ничего сложного. методом тыка узнал как это сделать. до этого уже 2 часа добил):
расписываю
  1. у меня есть почва
  1. обрабатываю. Но вообще-то не нужно вырезать, просто выделите и все. Но я уж поздно, обработал. По примеру уберсплатов для зданий в варике не вырезаны края. Просто альфа канал стоит
  1. Ну и .. (понял бы любой)
  1. сохраняете в формате tga, потом конвентируете (можно прогой Warcraft 3 Viewer). и смотрим, что получилось
получилось не очень, нужно наверное другую картинку подобрать.

23

» WarCraft 3 / PauseUnit

Похожие вопросы:

ответ
Я для этого сделал свою системку поддержания эффекта оглушения.
Создаётся на карте даммик, с молотом бурь, 1 уровень, без маны, ренж 99999, время оглушения - 0.00
В нужный момент отдаёт приказ застанить юнита, и записываем нужное нам время (например 2.50 сек)
когда время истекает - снимает бафф
Если пытаемся станить юнита у которого уже есть стан - ищем его время и обновляем на новое
Если новое меньше старого - ничего не делаем. Если новое больше старого - пишем новое.
ответ
Что там за ужасные условия?
Короче. Можешь сделать вот так вота:
Исходные данные- массив героев.
1 способ- создаешь массив, размер которого = размеру массива героев и заполняешь его линейным методом. То есть с помощью рандома выбираешь первое число. И потом с помощью последовательности i+(k*q), где i- изначальная ячейка; k- попытка: q- шаг.
2 способ- также создаешь массив, но заполняешь его вот так: рандомом выбираешь героя. Проверяешь, имеется ли уже такой в новом массиве. Если да- перевыбираешь, если нет- вставляешь и переходишь к следующей ячейки
Таким образом каждую игру будет генерироваться твой массив случайным образом. Заводишь переменную s, считающую сколько героев уже вытащили, и создаешь героя из твоего нового сформированного массива под номером s
Проще сказать: формируй каждую игру новый массив и вытаскивай по одному герою из него каждый раз, когда требуется
ответ
исправил некоторые недочёты, и всё же хотелось бы узнать, может еще есть какие-то недоработки тут?
раскрыть
library UnitRecycler requires UnitRevive



    globals

        private  constant  integer         MAX_STOCKED_RAWCODES         =  256
        private  constant  integer         MAX_STOCKED_UNITTYPES        =  1024

        private  constant  group           stock                        =  CreateGroup( )
        private            unit            recycledUnit                 =  null

        private            integer         stockedRawCodesCount         =  0
        private            integer  array  stockedRawCodes

        private            integer  array  stockedUnitCount
        private            unit     array  stockedUnit[ MAX_STOCKED_RAWCODES ] [ MAX_STOCKED_UNITTYPES ]

    endglobals



    private constant function IsUnitAlive takes unit whichUnit returns boolean
        return not ( IsUnitType( whichUnit, UNIT_TYPE_DEAD ) or  ( GetUnitTypeId( whichUnit ) == 0 ) )
    endfunction



    private function RAW2S takes integer value returns string
        local  string   charMap         =  ".................................!.#$%&'()*+,-./0123456789:;<=>.@ABCDEFGHIJKLMNOPQRSTUVWXYZ[.]^_`abcdefghijklmnopqrstuvwxyz{|}~................................................................................................................................."
        local  string   result          =  ""
        local  integer  remainingValue  =  value
        local  integer  byteno          =  0
        local  integer  charValue

        loop
            set charValue = ModuloInteger(remainingValue, 256)
            set remainingValue = remainingValue / 256
            set result = SubString(charMap, charValue, charValue + 1) + result
     
            set byteno = byteno + 1
            exitwhen ( byteno == 4 )
        endloop

        return result
    endfunction



    private function GetUnitFromStock takes integer rawCode returns unit
        local  integer  i  =  0

        loop

            if ( stockedRawCodes[ i ] == rawCode ) and ( stockedUnitCount [ i ] > 0 ) then

                set  stockedUnitCount [ i ]                             =  stockedUnitCount [ i ] - 1
                set  recycledUnit                                       =  stockedUnit [ i ] [ stockedUnitCount [ i ] ]
                set  stockedUnit      [ i ] [ stockedUnitCount [ i ] ]  =  null
                exitwhen true
            endif

            if ( i == stockedRawCodesCount ) then

                debug call BJDebugMsg( "GetUnitFromStock(...) :    '" + RAW2S( rawCode ) + "' unittype stock is emty. New unit has been created." )
                set recycledUnit = CreateUnit( Player( 15 ), rawCode, HIDDEN_X, HIDDEN_Y, 0.0 )
                exitwhen true
            endif

            set i = i + 1
        endloop

        return recycledUnit
    endfunction



    private function AddUnitToStock takes unit whichUnit returns nothing
        local  integer rawCode  =  GetUnitTypeId( whichUnit )
        local  integer i        =  0

        loop
            exitwhen ( stockedRawCodes[ i ] == rawCode )

            if ( i == stockedRawCodesCount ) and ( stockedRawCodesCount < MAX_STOCKED_RAWCODES ) then
                set stockedRawCodes[ i ] = rawCode
                set stockedRawCodesCount = stockedRawCodesCount + 1
                exitwhen true

            elseif ( stockedRawCodesCount == MAX_STOCKED_RAWCODES ) then
                debug call BJDebugMsg( "AddUnitToStock(...) :    Cannot add unit to stock, max rawcode count achieved. Unit has been removed." )
                call KillUnit( whichUnit )
                call ShowUnit( whichUnit, false )
            endif

            set i = i + 1
        endloop

        if ( stockedUnitCount [ i ] < MAX_STOCKED_UNITTYPES ) then
            set stockedUnit      [ i ] [ stockedUnitCount [ i ] ]  =  whichUnit
            set stockedUnitCount [ i ]                             =  stockedUnitCount [ i ] + 1

        else
            debug call BJDebugMsg( "AddUnitToStock(...) :    Cannot add unit to stock, max unittype count achieved. Unit has been removed." )
            call KillUnit( whichUnit )
            call ShowUnit( whichUnit, false )
        endif

    endfunction



    function GetRecycledUnit takes player owner, integer rawCode, real x, real y, real facing returns unit
        if IsHeroUnitId( rawCode ) then
            debug call BJDebugMsg( "GetRecycledUnit(...) :    Attempt to  get recycled hero unit." )

        else
            set recycledUnit = GetUnitFromStock( rawCode )
            call GroupRemoveUnit    ( stock, recycledUnit )
            call PauseUnit          ( recycledUnit, false )
            call SetUnitOwner       ( recycledUnit, owner, true )
            call SetUnitPosition    ( recycledUnit, x, y )
            call SetUnitFacing      ( recycledUnit, facing )
            call SetUnitPathing     ( recycledUnit, true )
            call SetUnitInvulnerable( recycledUnit, false )
            call ShowUnit           ( recycledUnit, true )

            return recycledUnit
        endif

        return null
    endfunction



    function RecycleUnit takes unit whichUnit returns boolean
        if ( whichUnit == null ) then
            debug call BJDebugMsg( "RecycleUnit(...) :    Attempt to recycle a null unit." )
            return false

        elseif IsUnitAlive( whichUnit ) then
            debug call BJDebugMsg( "RecycleUnit(...) :    Attempt to recycle an alive unit." )
            return false

        elseif IsUnitInGroup( whichUnit, stock ) then
            debug call BJDebugMsg( "RecycleUnit(...) :    Attempt to recycle an already recycled unit." )
            return false

        elseif IsHeroUnitId( GetUnitTypeId( whichUnit ) ) then
            debug call BJDebugMsg( "RecycleUnit(...) :    Attempt to recycle a hero unit." )
            return false

        elseif ReviveUnit( whichUnit ) then
            call GroupAddUnit       ( stock, whichUnit )
            call PauseUnit          ( whichUnit, true )
            call SetUnitOwner       ( whichUnit, Player( 15 ), false )
            call SetUnitState       ( whichUnit, UNIT_STATE_LIFE, GetUnitState( whichUnit, UNIT_STATE_MAX_LIFE ) )
            call SetUnitState       ( whichUnit, UNIT_STATE_MANA, GetUnitState( whichUnit, UNIT_STATE_MAX_MANA ) )
            call SetUnitScale       ( whichUnit, 1.0, 0.0, 0.0 )
            call SetUnitVertexColor ( whichUnit, 255, 255, 255, 255 )
            call SetUnitFlyHeight   ( whichUnit, GetUnitDefaultFlyHeight( whichUnit ), 0.0 )
            call SetUnitPathing     ( whichUnit, false )
            call SetUnitInvulnerable( whichUnit, true )
//          call ShowUnit           ( whichUnit, false )
            call SetUnitPosition    ( whichUnit, HIDDEN_X, HIDDEN_Y )
            call AddUnitToStock     ( whichUnit )
            return true

        else
            debug call BJDebugMsg( "RecycleUnit(...) :    Cannot revive this unit." )
            return false
        endif

        return false
    endfunction



endlibrary
ответ
Если коротко: имена функций - жуть, не вижу определения PureDamageWithCrit, некоторые вызовы будут чуть медленнее из-за экономии места, ну и без хештаблицы можно, обойтись структурами + TimerExploit.
Блин, два раза кодировка сбивается в комменте, теперь вообще текста не видно, что за...
ответ
Razor_dex:
Мне кажется проблема в этом, он не просто передвигает, он перемещает с одной дистанции на другую, т.е рывками
Криво реализовано движение. У тебя смещение происходит сразу на 300 единиц, поэтому пролетаешь декорации, и потому, что функция SetUnitXY перемещает в точку беспрепятственно, игнорируя занимаемое юнитом пространство. Попробуй сделать так:
поменяй это
call SetUnitX(b,GetUnitX(b) + 300 * Cos(GetUnitFacing(a) * bj_DEGTORAD))
call SetUnitY(b,GetUnitY(b) + 300 * Sin(GetUnitFacing(a) * bj_DEGTORAD))
на это
call SetUnitPosition(b,GetUnitX(b) + 40 * Cos(GetUnitFacing(a) * bj_DEGTORAD),GetUnitY(b) + 40* Sin(GetUnitFacing(a) * bj_DEGTORAD))
ну и установи таймеру период срабатывания в 0.05 где-то.
call TimerStart(t,0.20,true,function Hakke_Act)
Вообще, по-хорошему, надо бы переделать весь спел.

23

» WarCraft 3 / Москиты

Похожие вопросы:

ответ
ой сорь, забыл малость, там не событе а функция с похожим названием:
Прикладываю пример, чтобы потом не ныли что не работает...
ответ
С москитами точно так же двигается, вы наверное забыли что юниты с москитами нельзя выбрать функцией ForGroup.
ответ
~8gabriel8:
Скачай редактор JNGP (JASS New Gen Pack), там есть способность москиты и в редакторе объектов, и в триггерах.
ответ
EvilPenguin, эмм как насчет морф в героя с москитами, потом морф обратно. Самая тру тема.
ответ
Потому что пауза снимает часть эффекта москитов, а многие абилки паузят юнитов - ну чтобы панда пивовар не бегал в ульте пока бегают три духа к примеру, голем наверное создается сразу и паузится пока не пройдет анимация а потом пауза снимается, хз как там конечно близзарды сделали и зачем, но факт остается фактом.

23

» WarCraft 3 / Реплей

Похожие вопросы:

ответ
Жрет не существенно, но я чаще всего выключаю запись. Когда тестирует другой человек, самому легче наблюдать за багами и из за чего они происходят через реплей, чем искать причину их возникновения из слов.
Смотря на сколько времени рассчитана карта. Если на пару часов, то ничего страшного, а если на 10 и больше, то желательно не записывать.

23

» WarCraft 3 / jasshelper не работает

Похожие вопросы:

ответ
Думал использовать чисто для экономии времени. По хорошему конечно надо самому написать системки, да все руки не доходят.
Может тогда подскажите, есть ли готовые более менее пригодные для использования. Сам всегда делал через торнадо, разве это уже не модно?
ответ
Причина может быть в путях к jngp, обычно для вызова джасхелпера нужно 2 сохранения подряд в папку, где нет кириллицы. Бтв, можно вызвать коплит карты вручную через Sc.exp > Compile map. А так же может быть выключен сам джасхелпер в vjass > enableJassHelper.

23

» WarCraft 3 / Проверка файла мемхаком

Похожие вопросы:

ответ
pro100master, сам в шоке. Первый раз такие траблы.
pro100master, интересное кино о_О! Переименовал файл карты и юзанул на него Sc.Exp -> Compile Map.. И о чудо! Всё работает... Короче прошу простить за то что потривожил.

23

» WarCraft 3 / Опыт за убийство.

Похожие вопросы:

ответ
в константах настраивается
там есть таблица опыта
ответ
я изменил там все поля связанные с опытом на ноль (кроме фактора предыдущего значения, он ниже единицы не ставился), а с таблиц просто поудалял значения. вот видимо при загрузке оно туда вписывало стандартные... сейчас поставил туда тоже нолик, все норм стало. (:
ответ
игровые константы - опыт: общее распределение - поменяй на "нет"....
ответ
Игрок -> и там поищи.
ответ
~8gabriel8:
Посмотри в игровых константах, скорее всего там есть. А так мне приходит в голову вариант триггерный, когда все появляющиеся на карте юниты заносятся в триггер отлова урон, где два проверочных условия: источник урона-здание, наносимый урон больше или равен текущему здоровью, а в действии нанести этот урон от лица героя, владелец которого соответствует источнику урона.

23

» WarCraft 3 / Редактор

Похожие вопросы:

ответ
Делать свой ИИ, либо в редакторе ИИ, либо писать самому.
Ещё можешь дописать своих юнитов в стандартные скрипты.
ответ
Ты добавлял кости? Или через "повышение урона (улучшение)"? Значение последнего у юнита помечено — это добавится "базовый урон".
ответ
www.wc3c.net/tools/specs тут есть
NEW Frozen Throne expansion pack format of "war3map.w3u / w3t / w3b / w3d / w3a / w3h / w3q" The object data files (thanks PitzerMike):

23

» WarCraft 3 / Проблема не знаю с чем

Похожие вопросы:

ответ
Gerhop, проверь занесены ли даммики в группу. Если занесены и триггер у тебя включен, то хоть что-то должно происходить. НО на гуи такое сделать сложно и нефиг делать хотя бы из-за того, что играть ты сможешь ну максимум минут 20. Потом вар скрашится на рабочий стол.
ответ
Не поленился, нашел:
Пора пилить статью на эту тему.
ответ
Можно и так, я привык писать их как надо, а то ГОВНОКОДА полно
На самом деле, сущности с одинаковым назначением стоит держать в одном месте, но в GUI это по большому счёту фломастеры.
ApoloZ2:
как сделать чтобы только 1 раз высвечивал?
Действие - триггеры - Turn this trigger off.
ответ
ENAleksey, ну я же не могу твою модификацию запихнуть в карту.

23

» WarCraft 3 / Как улучшить триггер?

Похожие вопросы:

ответ
я сделал, спасибо каждому, кто откликнулся!
ответ
вопросы типа сделайте за меня не принимаются
по поводу того как это делать написано здесь xgm.guru/p/wc3/articles
ответ
Перенеси условия в блоки "Иначе", как на картинке и тогда попробуй.
Должно создаваться по одному предмету за раз.
алсо - "Модернизация"
ответ
ну ловиш что начинает строить и заносиш юнит в режиме постройке и проверяеш.
если здание разрушено и проверить массив если он улучшает то true иначе false
ответ
~8gabriel8:
Почитай про утечки точек, как их создавать и удалять. Не знаю, как в твоём новом патче, но в 1.26 приказ отдаётся максимум 12 юнитам, у тебя может быть также, потому лучше отдавать приказ сразу после создания.
Предлагаю улучшить так:
  • Создать переменные для двух точек;
  • В триггере инициализации указать точкам значение центра областей 016 и 025;
  • Сделать периодический триггер с условием, что Король Мёртвых жив, а в действиях создание групп юнитов в одной точке, а сразу после создания приказ (Last Created Group) Перейти, нападая на противников, в другую точку;
  • По идее ещё бы отключить триггер за ненадобностью после смерти Короля Мёртвых, раз уж много таких триггеров, но всё равно изменение нагрузки будет незаметным, поэтому можно не отключать.
P. S. Утечка точки весит 0.361 кб, даже если не удалять утечки в этом триггере, то за 30 минут это будет 0.361х4х30=43.32 кб, что вполне приемлимо.

23

» WarCraft 3 / Анимация

Похожие вопросы:

ответ
~8gabriel8:
Вот есть вариант: xgm.guru/p/wc3/222019?postid=413030#comment28
ответ
~8gabriel8:
Да, сейчас проверил, не работает отражение по вершинам. Казалось, что раньше это делал через отрицательный масштаб.
Но есть такой комментарий, где кроме матрикса предлагают отрицательный масштаб для bone_root в глобальной анимации задать:

23

» WarCraft 3 / Погода

Похожие вопросы:

ответ
Вопрос есть в FAQ вроде. Необходимо добавить действие "окружение - включить последний созданный эффект погоды"
Ну и настройки графики должны быть как минимум на средних!
ответ
nvc123, насколько я помню - отключение не помогало, только уничтожение.
ответ
Вот так, это вроде самое легкое что есть там
ответ
Эффекты стакаются в одном регионе (и даже чуть дальше него) крайне сложным образом, и зависит их совместимость от равкода. Я, когда писал погоду для морлоков с этим сталкивался, и возможно описывал проблему... лет 10 назад) Лечится импортом своей таблицы с погодой и подборкой равкодов. Ну и как вариант для более сильного дождя например можно вместо попытки добавить 2 эффекта и той-же таблице просто прописать побольше частиц.
ответ
После создания, погодный эффект нужно занести в переменную и включить его (там есть действие). Когда нужно изменить погодный эффект, то старый нужно удалить, для этого мы его занесли в переменную.

23

» Администрация XGM / Ссылка на комментарий

Принятый ответ
Похожие вопросы:

ответ
Если не сложно, нажми у себя там "Лучший ответ", чтобы этот вопрос больше в активных не светился.
ответ
ХеллКор вроде писал когда-то, что на самом деле всё работает, даже не смотря на то, что выдаёт ошибку, сообщение до администрации всё равно доходит. Не знаю, правда, как сейчас.
ответ
Да старая известная бага, зашитая глубоко в недрах кода. Поэтому фиксить врятли будем. Но пока что думаем, как это можно исправить в будущем. В любом случае постараемся решить её в новом релизе

23

» WarCraft 3 / Взлом карты.

Похожие вопросы:

ответ
SAGOR0, закрой уже вопрос, никто тебе не будет помогать ломать карту. Что лучше сделать тебе уже посоветовали.
ответ
тут дело в конфликте
ибо системные функции(создание стартовых точек,main и прочее) депротектор автоматически переносит в файл для пользовательских функций
и теперь тебе надо просто удалить их из этого файла
файл называется war3map.wct
вот на будущее статья
ответ
Руками, но ломать карты нехорошо, мб попытаться сделать своими руками?
Карту крепить сюда, а не на ргхосты де хрен что скачаешь.
Кстати а какие могут быть проблемы со взломом у нашего юнного ломастера? Карта покрыта тулами векса, открыл RMPQ, ничего особенного.
Если ничего не знаешь об устройстве карты и JASS сразу забудь о взломе, ибо ты ничего не сможешь сделать сам.
ответ
у тебя кусок кода с библиотекой и глобалом
вывод
поставь нормальный редактор
либо ручками j файл правь

23

» WarCraft 3 / Порча

Похожие вопросы:

ответ
А добавит проверку "если тип почвы в позиции (x, y) == "нужный тебе" то заменяем сложно? Проверка типа ландшафта тоже вшита в стандартное гуи варика.
ответ
~8gabriel8:
"Рассеять чары" мгновенно убирает порчу.
ответ
Проверка по типу, порченое и обычное это две разные декорации.
ответ
ну, тогда никак